package com.tree.backend.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tree.backend.entity.dto.costItem.CostItemCreateDTO;
import com.tree.backend.entity.dto.costItem.CostItemQueryDTO;
import com.tree.backend.entity.dto.costItem.CostItemUpdateDTO;
import com.tree.backend.entity.pojo.CostItem;
import com.tree.backend.entity.vo.costItem.CostItemTreeNodeVO;
import com.tree.backend.entity.vo.costItem.CostItemVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 成本项目分类表 服务类
 * </p>
 */
public interface ICostItemService extends IService<CostItem> {
    
    /**
     * 获取成本项目分页列表
     */
    IPage<CostItemVO> getCostItemPage(CostItemQueryDTO queryDTO);
    
    /**
     * 根据ID获取成本项目详情
     */
    CostItemVO getCostItemById(Long id);
    
    /**
     * 新增成本项目
     */
    boolean addCostItem(CostItemCreateDTO createDTO);
    
    /**
     * 更新成本项目
     */
    boolean updateCostItem(Long id, CostItemUpdateDTO updateDTO);
    
    /**
     * 删除成本项目
     */
    boolean deleteCostItem(Long id);
    
    /**
     * 获取成本项目树
     */
    List<CostItemTreeNodeVO> getCostItemTree();
    
    /**
     * 获取所有成本项目列表（不分页）
     */
    List<CostItemVO> getAllCostItems();
}
